
package web;
import Persistencia.*;
import controladores.*;
import org.springframework.web.servlet.mvc.Controller;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import java.io.*;
import java.util.*;
/**
 * Este controlador tiene acargo la tarea de redireccionar las consultas que se hagan sobre el reporte historial.
 * Listando todo lo que se encuentre en la base de datos.
 */
public class ControladorReporte implements Controller{

    ControladorPaciente controlador;
    ControladorSesion controladorS;
    ControladorTratamiento controladorT;
    Fisioterapeuta obj;
    @Override
    public ModelAndView handleRequest(HttpServletRequest hsr, HttpServletResponse hsr1) throws Exception {
        controlador = new ControladorPaciente();
        controladorS = new ControladorSesion();
        controladorT = new ControladorTratamiento();
        ControladorFisioterapeuta controladorF;
        System.out.println("ControladorAdministrarCoordinador");
        System.out.println("parametro "+hsr.getParameter("id"));
        if(hsr.getParameter("id_fisioter") != null&&hsr.getParameter("id_paciente") != null){
            Map<String, Object> myModel = new HashMap<String, Object>();            
            myModel.put("id_fisioter",hsr.getParameter("id_fisioter"));
            myModel.put("id_paciente",hsr.getParameter("id_paciente"));
            myModel.put("sesiones",controladorS.encontrarMisSesionesPac(hsr.getParameter("id_paciente")));
            return new ModelAndView("mostrarSesiones", "model", myModel);
        }
        if(hsr.getParameter("id_sesion") != null&&hsr.getParameter("id_pac") != null&&hsr.getParameter("id_fisiot") != null){
            Map<String, Object> myModel = new HashMap<String, Object>();
            myModel.put("id_fisioter",hsr.getParameter("id_fisiot"));
            myModel.put("id_paciente",hsr.getParameter("id_paciente"));
            myModel.put("id_sesion",hsr.getParameter("id_sesion"));
            myModel.put("sesion",controladorS.encontrarSesion(hsr.getParameter("id_sesion")));
            return new ModelAndView("mostrarSesion", "model", myModel);
        }
        if(hsr.getParameter("id_sesion") != null&&hsr.getParameter("id_pacie")!=null&&hsr.getParameter("id_fisiot") != null){
            Map<String, Object> myModel = new HashMap<String, Object>();
            myModel.put("id_fisiot",hsr.getParameter("id_fisiot"));
            myModel.put("id_sesion",hsr.getParameter("id_sesion"));
            Tratamiento tr=controladorT.encontrarTratamiento(hsr.getParameter("id_sesion"));
            if(tr!=null){
                myModel.put("id_paciente",tr.getSesion().getPaciente().getIdPaciente());
                myModel.put("tratamiento",tr);
                return new ModelAndView("mostrarTratamiento", "model", myModel);
            }else{
                myModel.put("id_fisio",hsr.getParameter("id_fisiot"));
                myModel.put("idPaciente",hsr.getParameter("id_pacie"));
                return new ModelAndView("errorTratamiento", "model", myModel);
            }
        }
        if(hsr.getParameter("id_fisio")!=null){
            Map<String, Object> myModel = new HashMap<String, Object>();
            System.out.println(hsr.getParameter("id_fisio")+"  jaja");
            myModel.put("id_fisioter",hsr.getParameter("id_fisio"));
            myModel.put("pacientes",controlador.encontrarMisPacientes(hsr.getParameter("id_fisio")));
            return new ModelAndView("mostrarPacientes", "model", myModel);
        }else{
            System.out.println("listarle al reporte");
            controladorF = new ControladorFisioterapeuta();
            return new ModelAndView("mostrarFisioterapeutas","model",controladorF.encontrarFisioterapeutas());
        }
    }

}
